# Audio

**描述：**

&emsp;&emsp;音频播放管理单例类。

## soundSpeed

**类型：** 成员变量。

**描述：**

&emsp;&emsp;声音速度。

**签名：**
```tl
soundSpeed: number
```

## globalVolume

**类型：** 成员变量。

**描述：**

&emsp;&emsp;全局音量。

**签名：**
```tl
globalVolume: number
```

## listener

**类型：** 成员变量。

**描述：**

&emsp;&emsp;3D 声源的聆听者节点。

**签名：**
```tl
listener: Node
```

## play

**类型：** 函数。

**描述：**

&emsp;&emsp;播放音效并返回音频句柄。

**签名：**
```tl
play: function(
		self: Audio,
		filename: string,
		loop?: boolean --[[false]]
	): integer
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| filename | string | 音效文件的路径（必须为 WAV 文件）。 |
| loop | boolean | [可选] 是否循环播放音效（默认为 false）。 |

**返回值：**

| 返回类型 | 描述 |
| --- | --- |
| integer | 音频句柄，可用于停止音效。 |

## stop

**类型：** 函数。

**描述：**

&emsp;&emsp;停止当前正在播放的音效。

**签名：**
```tl
stop: function(self: Audio, handler: integer)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| handler | integer | `Audio:play()` 函数返回的音频句柄。 |

## playStream

**类型：** 函数。

**描述：**

&emsp;&emsp;以流媒体方式播放音频文件。

**签名：**
```tl
playStream: function(
		self: Audio,
		filename: string,
		loop?: boolean --[[false]],
		crossFadeTime?: number --[[0.0]]
	)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| filename | string | 流媒体音频文件的路径（可以是 OGG、WAV、MP3 或 FLAC格式）。 |
| loop | boolean | [可选] 是否循环播放流媒体音频（默认为 false）。 |
| crossFadeTime | number | [可选] 在上一个流媒体音频和新的流媒体音频之间交叉淡入淡出的时间（默认为 0.0）。 |

## stopStream

**类型：** 函数。

**描述：**

&emsp;&emsp;停止当前正在播放的流媒体音频文件。

**签名：**
```tl
stopStream: function(
		self: Audio,
		fadeTime?: number --[[0.0]]
	)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| fadeTime | number | [可选] 淡出流媒体音频的时间（默认为 0.0）。 |

## setPauseAllCurrent

**类型：** 函数。

**描述：**

&emsp;&emsp;暂停所有当前正在播放的音频。

**签名：**
```tl
setPauseAllCurrent: function(self: Audio, pause: boolean)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| pause | boolean | 暂停状态。 |

## setListenerAt

**类型：** 函数。

**描述：**

&emsp;&emsp;设置聆听者的位置。

**签名：**
```tl
setListenerAt: function(self: Audio, atX: number, atY: number, atZ: number)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| atX | number | x 轴位置。 |
| atY | number | y 轴位置。 |
| atZ | number | z 轴位置。 |

## setListenerUp

**类型：** 函数。

**描述：**

&emsp;&emsp;设置聆听者的上方向。

**签名：**
```tl
setListenerUp: function(self: Audio, upX: number, upY: number, upZ: number)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| upX | number | x 轴上方向。 |
| upY | number | y 轴上方向。 |
| upZ | number | z 轴上方向。 |

## setListenerVelocity

**类型：** 函数。

**描述：**

&emsp;&emsp;设置聆听者的速度。

**签名：**
```tl
setListenerVelocity: function(self: Audio, velocityX: number, velocityY: number, velocityZ: number)
```

**参数：**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| velocityX | number | x 轴速度。 |
| velocityY | number | y 轴速度。 |
| velocityZ | number | z 轴速度。 |